home *** CD-ROM | disk | FTP | other *** search
/ Winzipper / Winzipper_ISO.iso / nt4.0 server / OEMNADD1.IN_ / oemnadd1.inf
INI File  |  1996-07-12  |  33KB  |  841 lines

  1. [Identification]
  2.     OptionType = NetAdapter
  3. [PlatformsSupported]
  4.     ISA
  5.     EISA
  6.     "Jazz-Internal Bus"
  7. [Options]
  8.     DEC100
  9.     DEC101
  10. [FileConstants]
  11. UtilityInf      = "UTILITY.INF"
  12. subroutineinf   = "SUBROUTN.INF"
  13. ParamInf        = "NCPARAM.INF"
  14. SoftwareType    = "driver"
  15. Exit_Code       = 0
  16. NetEventDLL     = "%SystemRoot%\System32\netevent.dll"
  17. IoLogMsgDLL     = "%SystemRoot%\System32\IoLogMsg.dll"
  18. Manufacturer    = "Microsoft"
  19. ProductMajorVersion     = "4"
  20. ProductMinorVersion     = "0"
  21. ProductVersion  = $(ProductMajorVersion)"."$(ProductMinorVersion)
  22. ProductSoftwareName     = "Lance"
  23. ProductSoftwareImagePath = "\SystemRoot\System32\drivers\lance.sys"
  24. NetRuleSoftwareType     = "lanceSys ndisDriver lanceDriver"
  25. NetRuleSoftwareUse      = $(SoftwareType)
  26. NetRuleSoftwareBindForm = """LanceSys"" yes no container"
  27. NetRuleSoftwareClass    = {"lanceDriver basic"}
  28. ProductHardwareName             = "Lance"
  29. NetRuleHardwareDEC100Type       = "dec100 dec100Adapter"
  30. NetRuleHardwareDEC101Type       = "dec101 dec101Adapter"
  31. NetRuleHardwareBindForm         = " yes yes container"
  32. NetRuleHardwareDEC100Class      = {"dec100Adapter basic"}
  33. NetRuleHardwareDEC101Class      = {"dec101Adapter basic"}
  34. ProductOpSupport     = 134 
  35. ProductKeyName  = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
  36. ParamKeyName    = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
  37. [GeneralConstants]
  38. from      = ""
  39. to        = ""
  40. ExitCodeOk     = 0
  41. ExitCodeCancel = 1
  42. ExitCodeFatal  = 2
  43. KeyNull         = ""
  44. MAXIMUM_ALLOWED   = 33554432
  45. RegistryErrorIndex = NO_ERROR
  46. KeyProduct      = ""
  47. KeyParameters   = ""
  48. TRUE            = 1
  49. FALSE           = 0
  50. NoTitle            = 0
  51. ExitState   = "Active"
  52. OldVersionExisted = $(FALSE)
  53. DriverPath      = $(!STF_NTPATH)\drivers
  54. [date]
  55.     Now = {} ? $(!LIBHANDLE) GetSystemDate
  56. [Identify]
  57.     read-syms Identification
  58.     set Status     = STATUS_SUCCESSFUL
  59.     set Identifier = $(OptionType)
  60.     set Media      = #("Source Media Descriptions", 1, 1)
  61.     Return $(Status) $(Identifier) $(Media)
  62. [ReturnOptions]
  63.     set Status        = STATUS_FAILED
  64.     set OptionList     = {}
  65.     set OptionTextList = {}
  66.     set LanguageList = ^(LanguagesSupported, 1)
  67.     Ifcontains(i) $($0) in $(LanguageList)
  68.         ifstr(i) $($1) == ""
  69.            goto returnoptions
  70.         endif
  71.         set PlatformList = ^(PlatformsSupported, 1)
  72.         Ifcontains(i) $($1) in $(PlatformList)
  73.            goto returnoptions
  74.         else
  75.            set Status = STATUS_NOTSUPPORTED
  76.            goto finish_ReturnOptions
  77.         endif
  78.     else
  79.         set Status = STATUS_NOLANGUAGE
  80.         goto finish_ReturnOptions
  81.     endif
  82. returnoptions = +
  83.     set OptionList     = ^(Options, 1)
  84.     set OptionTextList = ^(OptionsText$($0), 1)
  85.     set Status         = STATUS_SUCCESSFUL
  86. finish_ReturnOptions = +
  87.     Return $(Status) $(OptionList) $(OptionTextList)
  88. [InstallOption]
  89.     set Option   = $($1)
  90.     set SrcDir   = $($2)
  91.     set AddCopy  = $($3)
  92.     set DoCopy   = $($4)
  93.     set DoConfig = $($5)
  94.     set LanguageList = ^(LanguagesSupported, 1)
  95.     Ifcontains(i) $($0) NOT-IN $(LanguageList)
  96.         Return STATUS_NOLANGUAGE
  97.     endif
  98.     set-subst LF = "\n"
  99.     read-syms GeneralConstants
  100.     read-syms FileConstants
  101.     Shell $(UtilityInf), GetBindingInfo, "DEC"
  102.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  103.         Debug-Output "ShellCode error: cannot get an error string."
  104.         goto ShellCodeError
  105.     endif
  106.     set NetRuleSoftwareBindable = $($R1)
  107.     read-syms DialogConstants$(!STF_LANGUAGE)
  108.     ifstr(i) $(!NTN_Origination) == "NCPA"
  109.         set Continue = $(OK)
  110.     endif
  111.     read-syms FileConstants$(!STF_LANGUAGE)
  112.     detect date
  113.     set-title  $(FunctionTitle$(Option))
  114.     set to   = Begin
  115.     set from = Begin
  116.     set CommonStatus = STATUS_SUCCESSFUL
  117.     EndWait
  118. Begin = +
  119.     Set ActivateDetection = FALSE
  120.     Ifstr(i) $(!NTN_InstallMode) == deinstall
  121.         set StartLabel = removeadapter
  122.     else-Ifstr(i) $(!NTN_InstallMode) == Update
  123.         set StartLabel = UpgradeSoftware
  124.     else-Ifstr(i) $(!NTN_InstallMode) == bind
  125.         set StartLabel = bindingadapter
  126.     else-Ifstr(i) $(!NTN_InstallMode) == configure
  127.         set CommonStatus = STATUS_REBOOT
  128.         Set ActivateDetection = TRUE
  129.         set StartLabel = configureadapter
  130.         Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  131.             Debug-Output "Cannot configure the DEC 100 driver software."
  132.             Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE
  133.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  134.                 Debug-Output "ShellCode error: cannot get an error string."
  135.                 goto ShellCodeError
  136.             endif
  137.             set Error = $($R0)
  138.             set from = end
  139.             set to = end
  140.             goto nonfatalinfo
  141.         endif
  142.     else
  143.         set StartLabel = installadapter
  144.         set OEM_ABANDON_OPTIONS = {}
  145.         set OEM_ABANDON_SOFTWARE = FALSE
  146.         set OEM_ABANDON_ON = TRUE
  147.         Set ActivateDetection = TRUE
  148.     endif
  149.     Debug-Output "OEMNADD1.INF: =================================================="
  150.     Debug-Output "OEMNADD1.INF: STF_CWDIR is: "$(!STF_CWDIR)
  151.     Debug-Output "OEMNADD1.INF: STF_LANGUAGE is: "$(!STF_LANGUAGE)
  152.     Debug-Output "OEMNADD1.INF: Option is: "$(Option)
  153.     Debug-Output "OEMNADD1.INF: !STF_NCDETECT  is: "$(!STF_NCDETECT)
  154.     Debug-Output "OEMNADD1.INF: !STF_NCOPTION  is: "$(!STF_NCOPTION)
  155.     Debug-Output "OEMNADD1.INF: !STF_NCDETCARD is: "$(!STF_NCDETCARD)
  156.     Debug-Output "OEMNADD1.INF: !STF_NCDETINFO is: "$(!STF_NCDETINFO)
  157.     Debug-Output "OEMNADD1.INF: =================================================="
  158.     Set DetectedCard = FALSE
  159.     Ifstr(i) $(ActivateDetection) != TRUE
  160.         Goto skipdetection
  161.     Endif
  162.     Set TypeList = {{IRQ,IRQ_List,IRQLevel},+
  163.                     {IOADDR, IOADDR_Addr_List, IOBaseAddress},+
  164.                     {MEMADDR, MemBaseAddrDecList MemBaseAddrDec}}
  165.     Debug-Output "OEMNADD1.INF: Calling Param_BuildTypeLists"
  166.     Shell $(ParamInf) Param_BuildTypeLists $(Option) $(TypeList)
  167.     Set Status = $($R0)
  168.     ifstr(i) $(Status) != STATUS_SUCCESSFUL
  169.         Goto fataldetect
  170.     Endif
  171.     Debug-Output "OEMNADD1.INF: Calling Param_SetDefaults"
  172.     Shell $(ParamInf) Param_SetDefaults {}
  173.     Set IOADDR_Base_List = {1,2}
  174.     Shell $(ParamInf) HexListFromDecList $(MemBaseAddrDecList)
  175.     Set MemBaseAddrHexList = $($R0)
  176.     Ifstr(i) $(!STF_NCDETECT) == YES
  177.         Ifstr(i) $(!STF_NCOPTION) == $(Option)
  178.            Set DetectedCard = TRUE
  179.            Debug-Output "OEMNADD1.INF: Setting DetectedCard to TRUE"
  180.         Endif
  181.     Endif
  182. skipdetection =+
  183.     set from = $(fatal)
  184.     set to = $(fatal)
  185.     goto $(StartLabel)
  186. installadapter = +
  187.     OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  188.     Ifstr $(KeyProduct) != $(KeyNull)
  189.         CloseRegKey $(KeyProduct)
  190.         ifstr(i) !(NTN_RegBase) == $(ProductKeyName)
  191.            Shell $(UtilityInf), VerExistedDlg, $(ProductSoftwareTitle),+
  192.                $(ProductVersion)
  193.            ifint $($ShellCode) != $(!SHELL_CODE_OK)
  194.                Debug-Output "ShellCode error: cannot get an error string."
  195.                goto ShellCodeError
  196.            endif
  197.            goto end
  198.         else
  199.            Shell $(UtilityInf), CardExistedDlg
  200.            ifint $($ShellCode) != $(!SHELL_CODE_OK)
  201.                Debug-Output "ShellCode error: cannot get an error string."
  202.                goto ShellCodeError
  203.            endif
  204.            ifstr(i) $($R1) != "OK"
  205.                set CommonStatus = STATUS_USERCANCEL
  206.                goto end
  207.            endif
  208.            set OldVersionExisted = $(TRUE)
  209.         endif
  210.     endif
  211.     Ifstr(i) $(DetectedCard) != TRUE
  212.         Goto adaptersetup
  213.     Endif
  214.     StartWait
  215.     Shell $(ParamInf) Param_QueryCard $(!STF_NCDETCARD)
  216.     EndWait
  217.     Ifstr(i) $($R0) != STATUS_SUCCESSFUL
  218.         Goto adaptersetup
  219.     Endif
  220.     Set DetectedParams = $($R1)
  221.     Debug-Output "OEMNADD1.INF: Calling Param_SetDefaults to merge detected params"
  222.     Shell $(ParamInf) Param_SetDefaults $(DetectedParams)
  223.     Goto adaptersetup
  224. configureadapter = +
  225.     Ifstr $(KeyProduct) == $(KeyNull)
  226.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct
  227.         Ifstr $(KeyProduct) == $(KeyNull)
  228.             set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  229.             Debug-Output "Cannot find component product key"
  230.             goto fatalregistry
  231.         Endif
  232.     Endif
  233.     Debug-Output "INF: Shelling to FindService"
  234.     Shell $(UtilityInf) FindService, $(KeyProduct)
  235.     Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  236.         Debug-Output "INF: FindService shell failure"
  237.         Goto ShellCodeError
  238.     Endif
  239.     Ifstr(i) $($R0) != NO_ERROR
  240.         Debug-Output "INF: FindService Shell error: "$($R0)
  241.         Goto fatalregistry
  242.     endif
  243.     set KeyParameters = $($R2)
  244.     CloseRegKey $($R1)
  245.     Ifstr $(KeyParameters) == $(KeyNull)
  246.         set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  247.         Debug-Output "Cannot find component service"
  248.         goto fatalregistry
  249.     endif
  250.     set OldVersionExisted = $(TRUE )
  251.     set ValueName = ""
  252.     set ValueData = ""
  253.     set ValueStr  = ""
  254.     set ValueList = {}
  255.     set IOBaseChoice = 1
  256.     EnumRegValue $(KeyParameters) ValueList
  257.     ForListDo $(ValueList)
  258.         set ValueItem = $($)
  259.         set ValueName = *($(ValueItem),1)
  260.         set ValueData = *($(ValueItem),4)
  261.         Ifstr(i) $(ValueName) == "InterruptNumber"
  262.             set IRQLevel = $(ValueData)
  263.         else-Ifstr(i) $(ValueName) == "IOBaseAddress"
  264.             set IOBaseChoice = $(ValueData)
  265.         else-Ifstr(i) $(ValueName) == "MemoryMappedBaseAddress"
  266.             set MemBaseAddrDec = $(ValueData)
  267.         else-ifstr(i) $(ValueName) == "BusType"
  268.             set BusInterfaceType = $(ValueData)
  269.         else-ifstr(i) $(ValueName) == "BusNumber"
  270.             set BusNumber = $(ValueData)
  271.         endif
  272.     EndForListDo
  273.     ifint $(IOBaseChoice) == 768
  274.         set IOBaseChoice = 1
  275.     else-ifint $(IOBaseChoice) == 512
  276.         set IOBaseChoice = 2
  277.     endif
  278.     Set Iox = ~($(IOADDR_Base_List),$(IOBaseChoice))
  279.     Ifint $(Iox) == 0
  280.         Set Iox = 1  
  281.     Endif
  282.     Set IOBaseAddress = *($(IOADDR_Addr_List),$(Iox))
  283.     Debug-Output "OEMNADD1.INF: setting IOBaseAddress to: "$(IOBaseAddress)
  284. adaptersetup =+
  285.     Set IOBaseChoice = *($(IOADDR_Base_List),~($(IOADDR_Addr_List),$(IOBaseAddress)))
  286.     Debug-Output "OEMNADD1.INF: setting IOBaseChoice to: "$(IOBaseChoice)
  287.     Set MemBaseAddrHex = *($(MemBaseAddrHexList), ~($(MemBaseAddrDecList),+
  288.                             $(MemBaseAddrDec)))
  289.     Shell $(ParamInf) Param_ParameterConfidence
  290.     Ifstr(i) $($R0) != STATUS_SUCCESSFUL
  291.         Debug-Output "OEMNADE2.INF: parameter confidence too low to bypass configuration"
  292.         Goto adapteroptions
  293.     Endif
  294.     Ifstr(i) $(DetectedCard) == TRUE
  295.         Ifstr(i) $(!STF_INSTALL_MODE) != CUSTOM
  296.             set BusInterfaceType = *($(!STF_NCDETINFO),5)
  297.             set BusNumber = *($(!STF_NCDETINFO),6)
  298.             Goto adapterverify
  299.         Endif
  300.     Endif
  301. adapteroptions = +
  302.     set from = adapteroptions
  303.     ifstr(i) $(!STF_GUI_UNATTENDED) == "YES"
  304.         ifstr(i) $(!AutoNetInterfaceType) != ""
  305.             set BusInterfaceType = $(!AutoNetInterfaceType)
  306.         else
  307.             set BusInterfaceType = 1    
  308.         endif
  309.         ifstr(i) $(!AutoNetBusNumber) != ""
  310.             set BusNumber = $(!AutoNetBusNumber)
  311.         else
  312.             set BusNumber = 0
  313.         endif
  314.         goto adapterverify
  315.     endif
  316.     read-syms FileDependentDlg$(!STF_LANGUAGE)
  317.     ui start "InputDlg"
  318.     ifstr(i) $(DLGEVENT) == "CONTINUE"
  319.         set IRQLevel = $(Combo1Out)
  320.         set MemBaseAddrHex = $(Combo2Out)
  321.         set IOBaseChoice = *($(RadioOut),1)
  322.         ui pop 1
  323.     else-ifstr(i) $(DLGEVENT) == "BACK"
  324.         set CommonStatus = STATUS_USERCANCEL
  325.         Debug-Output "OEMNADD1.INF: Action: exit. Bye."
  326.         ui pop 1
  327.         goto end
  328.     else
  329.         ui pop 1
  330.         Debug-Output "OEMNADD1.INF: Action: unknown. Bye."
  331.         goto end
  332.     endif
  333.     Set IOBaseAddress = *($(IOADDR_Addr_List),~($(IOADDR_Base_List),$(IOBaseChoice)))
  334.     Debug-Output "OEMNADD1.INF: setting IOBaseAddress to: "$(IOBaseAddress)
  335.     Set MemBaseAddrDec = *($(MemBaseAddrDecList), ~($(MemBaseAddrHexList),+
  336.                             $(MemBaseAddrHex)))
  337.     Debug-Output "OEMNADD1.INF: setting mem base addr to: "$(MemBaseAddrDec)
  338.     ifstr(i) $(!STF_NCDETINFO) == {}
  339.         Shell $(UtilityInf),GetBusTypeDialog,$(ProductHardware$(Option)Description) $(BusInterfaceType) $(BusNumber)
  340.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  341.             Debug-Output "ShellCode error."
  342.             goto ShellCodeError
  343.         endif
  344.         set BusInterfaceType = $($R1)
  345.         set BusNumber = $($R2)
  346.     else
  347.         set BusInterfaceType = *($(!STF_NCDETINFO),5)
  348.         set BusNumber = *($(!STF_NCDETINFO),6)
  349.     endif
  350. adapterverify =+
  351.     Ifstr(i) $(DetectedCard) != TRUE
  352.         Goto skipoptions
  353.     Endif
  354.     Debug-Output "OEMNADD1.INF: Calling Param_VerifyCard"
  355.     Shell $(ParamInf) Param_VerifyCard $(!STF_NCDETCARD)
  356.     Ifstr(i) $($R0) == STATUS_SUCCESSFUL
  357.         Debug-Output "OEMNADD1.INF: Param_VerifyCard succeeded"
  358.         Goto skipoptions
  359.     Endif
  360.     Set from = adapteroptions
  361.     Set to = skipoptions
  362.     Shell $(UtilityInf),RegistryErrorString,VERIFY_WARNING
  363.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  364.         Debug-Output "ShellCode error: cannot get an error string."
  365.         goto ShellCodeError
  366.     endif
  367.     set Error = $($R0)
  368.     Goto Warning
  369. skipoptions =+
  370.     ifint $(OldVersionExisted) == $(TRUE)
  371.         ifstr(i) $(!NTN_InstallMode) == configure
  372.             goto writeparameters
  373.         endif
  374.     endif
  375.     StartWait
  376.     ifint $(OldVersionExisted) == $(FALSE)
  377.         ifstr(i) $(!NTN_InstallMode) == "install"
  378.            Ifstr(i) $(DoCopy) == "YES"
  379.               Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES
  380.               Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  381.                   Goto ShellCodeError
  382.               Else-Ifstr(i) $($R0) == STATUS_FAILED
  383.                   Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  384.                   ifint $($ShellCode) != $(!SHELL_CODE_OK)
  385.                      goto ShellCodeError
  386.                   endif
  387.                   set Error = $($R0)
  388.                   Goto fatal
  389.               Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  390.                   Goto successful
  391.               Endif
  392.               Set SrcDir = $($R1)
  393.            Endif
  394.            install "Install-Option"
  395.            ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  396.               Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
  397.               ifint $($ShellCode) != $(!SHELL_CODE_OK)
  398.                   goto ShellCodeError
  399.               endif
  400.               set Error = $($R0)
  401.               goto fatal
  402.            endif
  403.         endif
  404.         Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
  405.             $(ProductSoftwareName), +
  406.             $(ProductSoftwareName), +
  407.             $(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), +
  408.             $(ProductSoftwareImagePath), "kernel", "NDIS", {}, "",+
  409.             $(NetEventDLL)
  410.         Set OEM_ABANDON_SOFTWARE = TRUE
  411.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  412.             Debug-Output "ShellCode error"
  413.             goto ShellCodeError
  414.         endif
  415.         set RegistryErrorIndex = $($R0)
  416.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  417.             EndWait
  418.             Debug-Output "Registry error: add software components"
  419.             CloseRegKey $($R1)
  420.             CloseRegKey $($R2)
  421.             CloseRegKey $($R3)
  422.             CloseRegKey $($R4)
  423.             CloseRegKey $($R5)
  424.             goto fatalregistry
  425.         endif
  426.         set SoftProductKey      = $($R1)
  427.         Set SoftNetRuleKey      = $($R2)
  428.         Set SoftServiceKey      = $($R3)
  429.         Set SoftParameterKey    = $($R4)
  430.         Set SoftLinkageKey      = $($R5)
  431.         set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+
  432.                            {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
  433.                            {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
  434.                            {Title,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareTitle)},+
  435.                            {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareDescription)},+
  436.                            {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)},+
  437.                            {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  438.         Shell  $(UtilityInf), AddValueList, $(SoftProductKey), $(NewValueList)
  439.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  440.             Debug-Output "ShellCode error."
  441.             goto ShellCodeError
  442.         endif
  443.         set RegistryErrorIndex = $($R0)
  444.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  445.             EndWait
  446.             Debug-Output "Resgitry error: add value list."
  447.             CloseRegKey $(SoftProductKey)
  448.             CloseRegKey $(SoftNetRuleKey)
  449.             CloseRegKey $(SoftServiceKey)
  450.             CloseRegKey $(SoftParameterKey)
  451.             CloseRegKey $(SoftLinkageKey)
  452.             goto fatalregistry
  453.         endif
  454.         set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareType)},+
  455.                             {use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareUse)}, +
  456.                             {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareBindForm)}, +
  457.                             {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareClass)}, +
  458.                             {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareBindable)}, +
  459.                             {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  460.         Shell  $(UtilityInf), AddValueList, $(SoftNetRuleKey), $(NewValueList)
  461.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  462.             Debug-Output "ShellCode error."
  463.             goto ShellCodeError
  464.         endif
  465.         set RegistryErrorIndex = $($R0)
  466.         CloseRegKey $(SoftProductKey)
  467.         CloseRegKey $(SoftNetRuleKey)
  468.         CloseRegKey $(SoftServiceKey)
  469.         CloseRegKey $(SoftParameterKey)
  470.         CloseRegKey $(SoftLinkageKey)
  471.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  472.             EndWait
  473.             Debug-Output "Resgitry error: add value list."
  474.             goto fatalregistry
  475.         endif
  476.     endif
  477.     Shell $(UtilityInf), AddHardwareComponent,$(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName)
  478.     ifint $($R4) != -1
  479.         Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4))
  480.     endif
  481.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  482.         Debug-Output "Cannot add hardware component"
  483.         goto ShellCodeError
  484.     endif
  485.     set RegistryErrorIndex = $($R0)
  486.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  487.         EndWait
  488.         Debug-Output "Registry error: add hardware component"
  489.         Debug-Output $(RegistryErrorIndex)
  490.         CloseRegKey $($R1)
  491.         CloseRegKey $($R2)
  492.         CloseRegKey $($R3)
  493.         goto fatalregistry
  494.     endif
  495.     set KeyParameters = $($R3)
  496.     set KeyAdapterRules = $($R2)
  497.     set AdapterNumber = $($R4)
  498.     set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
  499.                        {Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardware$(Option)Title)},+
  500.                        {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardware$(Option)Description)},+
  501.                        {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+
  502.                        {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
  503.                        {OperationsSupport,$(NoTitle),$(!REG_VT_DWORD),$(ProductOpSupport)},+
  504.                        {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  505.     Shell  $(UtilityInf), AddValueList, $($R1), $(NewValueList)
  506.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  507.         Debug-Output "ShellCode error"
  508.         goto ShellCodeError
  509.     endif
  510.     CloseRegKey $($R1)
  511.     set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)""""
  512.     set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)
  513.     set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardware$(Option)Type)},+
  514.                         {bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
  515.                         {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardware$(Option)Class)}, +
  516.                         {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  517.     Shell  $(UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList)
  518.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  519.         Debug-Output "ShellCode error."
  520.         goto ShellCodeError
  521.     endif
  522.     set RegistryErrorIndex = $($R0)
  523.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  524.         EndWait
  525.         Debug-Output "Resgitry error: add value list."
  526.         CloseRegKey $(KeyParameters)
  527.         CloseRegKey $(KeyAdapterRules)
  528.         goto fatalregistry
  529.     endif
  530.     CloseRegKey $(KeyAdapterRules)
  531.     goto writeparameters
  532. writeparameters = +
  533.     set MemBaseAddrDec = *($(MemBaseAddrDecList), ~($(MemBaseAddrHexList),+
  534.                           $(MemBaseAddrHex)))
  535.     ifstr(i) $(Option) == "DEC100"
  536.         set CardTypeValue = 1
  537.     else
  538.         set CardTypeValue = 7
  539.     endif
  540.     ifint $(IOBaseChoice) == 2
  541.         set IOBaseChoice = 512
  542.     else
  543.         set IOBaseChoice = 768
  544.     endif
  545.     set NewValueList = {+
  546.                        {MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+
  547.                        {BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusInterfaceType)},+
  548.                        {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNumber)},+
  549.                        {CardType,$(NoTitle),$(!REG_VT_DWORD),$(CardTypeValue)},+
  550.                        {InterruptNumber,$(NoTitle),$(!REG_VT_DWORD),$(IRQLevel)},+
  551.                        {IOBaseAddress,$(NoTitle),$(!REG_VT_DWORD),$(IOBaseChoice)},+
  552.                        {MemoryMappedBaseAddress,$(NoTitle),$(!REG_VT_DWORD),$(MemBaseAddrDec)}+
  553.                        }
  554.     Shell  $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)
  555.     ifstr(i) $(!STF_GUI_UNATTENDED) == "YES"
  556.         Shell $(UtilityInf),AddDefaultNetCardParameters,$(KeyParameters)
  557.     endif
  558.     CloseRegKey $(KeyParameters)
  559.     set RegistryErrorIndex = $($R0)
  560.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  561.         Debug-Output "ShellCode error."
  562.         goto ShellCodeError
  563.     endif
  564.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  565.         Debug-Output "Registry error: Add value list"
  566.         goto fatalregistry
  567.     endif
  568.     EndWait
  569.     goto successful
  570. bindingadapter =+
  571.     set Error = "Binding: Sorry, not yet implemented."
  572.     goto fatal
  573. removeadapter = +
  574.     Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  575.         Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  576.             $(ProductSoftwareName)
  577.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  578.             Debug-Output "ShellCode error"
  579.             goto ShellCodeError
  580.         endif
  581.         set RegistryErrorIndex = $($R0)
  582.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  583.             goto fatalregistry
  584.         endif
  585.     else
  586.         Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  587.             $(ProductSoftwareName), $(!NTN_RegBase)
  588.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  589.             Debug-Output "ShellCode error"
  590.             goto ShellCodeError
  591.         endif
  592.         set RegistryErrorIndex = $($R0)
  593.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  594.             goto fatalregistry
  595.         endif
  596.     endif
  597.     goto end
  598. UpgradeSoftware = +
  599.     OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  600.     Ifstr $(KeyProduct) != $(KeyNull)
  601.         install "Install-Update"
  602.         ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  603.             goto fatal
  604.         endif
  605.         SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)}
  606.         SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)}
  607.         CloseRegKey $(KeyProduct)
  608.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Linkage" $(MAXIMUM_ALLOWED) LinkageKey
  609.         ifstr(i) $(LinkageKey) != ""
  610.             GetRegValue $(LinkageKey) Bind BindInfo
  611.             ForListDo *($(BindInfo),4)
  612.                 Split-String $($) "\" CardInfo
  613.                 QueryListSize CardPos $(CardInfo)
  614.                 OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"*($(CardInfo),$(CardPos))"\Parameters" $(MAXIMUM_ALLOWED) ParamKey
  615.                 ifstr $(ParamKey) != ""
  616.                     GetRegValue $(ParamKey) "IOBaseAddress" IOInfo
  617.                     ifint *($(IOInfo),4) == "1"
  618.                         SetRegValue $(ParamKey) {IOBaseAddress,$(NoTitle),$(!REG_VT_DWORD),768}
  619.                     else-ifint *($(IOInfo),4) == "2"
  620.                         SetRegValue $(ParamKey) {IOBaseAddress,$(NoTitle),$(!REG_VT_DWORD),512}
  621.                     endif
  622.                     CloseRegKey $(ParamKey)
  623.                 endif
  624.             EndForListDo
  625.             CloseRegKey $(LinkageKey)
  626.         endif
  627.     else
  628.         goto fatalregistry
  629.     endif
  630.     set iSearch = 1
  631. nextnetcard = +
  632.     Shell $(UtilityInf), FindNextNetworkCard, $(ProductHardwareName), $(iSearch)
  633.     set KeyNetcard = $($R0)
  634.     set iSearch = $($R1)
  635.     Debug-Output "OemNadEp.Inf: FindNextNetworkCard "$(KeyNetcard)","$(iSearch)
  636.     Ifstr $(KeyNetcard) != $(KeyNull)
  637.         Debug-Output "OemNadEp.Inf: Setting OperationsSupport value"
  638.         SetRegValue $(KeyNetcard) {OperationsSupport,$(NoTitle),$(!REG_VT_DWORD),$(ProductOpSupport)}
  639.         CloseRegKey $(KeyNetcard)
  640.         goto nextnetcard
  641.     Endif
  642.     goto end
  643. successful = +
  644.     goto end
  645. abandon = +
  646.     ForListDo $(OEM_ABANDON_OPTIONS)
  647.         Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  648.             $(ProductSoftwareName), $($)
  649.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  650.             Debug-Output "ShellCode error"
  651.             goto ShellCodeError
  652.         endif
  653.         set RegistryErrorIndex = $($R0)
  654.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  655.             goto fatalregistry
  656.         endif
  657.     EndForListDo
  658.     Ifstr(i) $(OEM_ABANDON_SOFTWARE) == TRUE
  659.         Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  660.             $(ProductSoftwareName), FALSE
  661.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  662.             Debug-Output "ShellCode error"
  663.             goto ShellCodeError
  664.         endif
  665.         set RegistryErrorIndex = $($R0)
  666.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  667.             goto fatalregistry
  668.         endif
  669.     endif
  670.     goto end
  671. warning = +
  672.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
  673.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  674.         goto ShellCodeError
  675.     endif
  676.     ifstr(i) $($R1) == "OK"
  677.         goto $(to)
  678.     else-ifstr(i) $($R1) == "CANCEL"
  679.         goto $(from)
  680.     else
  681.         goto "end"
  682.     endif
  683. nonfatalinfo = +
  684.     Set CommonStatus = STATUS_USERCANCEL
  685.     Set Severity = STATUS
  686.     goto nonfatalmsg
  687. nonfatal = +
  688.     Set Severity = NONFATAL
  689.     goto nonfatalmsg
  690. nonfatalmsg = +
  691.     ifstr(i) $(Error) == ""
  692.         Set Severity = NONFATAL
  693.         Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  694.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  695.             goto ShellCodeError
  696.         endif
  697.         set Error = $($R0)
  698.     endif
  699.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
  700.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  701.         goto ShellCodeError
  702.     endif
  703.     ifstr(i) $($R1) == "OK"
  704.         goto $(from)
  705.     else
  706.         goto "end"
  707.     endif
  708. fatalregistry = +
  709.     Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
  710.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  711.         goto ShellCodeError
  712.     endif
  713.     set Error = $($R0)
  714.     goto fatal
  715. fataldetect = +
  716.     Shell $(UtilityInf),RegistryErrorString,CANNOT_DETECT
  717.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  718.         Debug-Output "ShellCode error: cannot get an error string."
  719.         goto ShellCodeError
  720.     endif
  721.     set Error = $($R0)
  722.     Goto fatal
  723. fatal = +
  724.     ifstr(i) $(Error) == ""
  725.         Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  726.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  727.             goto ShellCodeError
  728.         endif
  729.         set Error = $($R0)
  730.     endif
  731.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
  732.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  733.         goto ShellCodeError
  734.     endif
  735.     goto setfailed
  736. ShellCodeError = +
  737.     set DlgType      = "MessageBox"
  738.     set STF_MB_TITLE = $(ShellCodeErrorTitle)
  739.     set STF_MB_TEXT  = $(ShellCodeErrorText)
  740.     set STF_MB_TYPE  = 1
  741.     set STF_MB_ICON  = 3
  742.     set STF_MB_DEF   = 1
  743.     ui start "Error Message"
  744.     goto setfailed
  745. setfailed = +
  746.     set CommonStatus = STATUS_FAILED
  747.     ifstr(i) $(OEM_ABANDON_ON) == TRUE
  748.         set OEM_ABANDON_ON = FALSE
  749.         goto abandon
  750.     endif
  751.     goto end
  752. end = +
  753.     goto term
  754. term = +
  755.     Return $(CommonStatus)
  756. [Install-Option]
  757.     set STF_VITAL = ""
  758.     ifstr(i) $(AddCopy) == "YES"
  759.         AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  760.     endif
  761.     ifstr(i) $(DoCopy) == "YES"
  762.        set !STF_NCPA_FLUSH_COPYLIST = TRUE
  763.        CopyFilesInCopyList
  764.     endif
  765.     ifstr(i) $(DoConfig) == "YES"
  766.     endif
  767.     Exit
  768. [Install-Update]
  769.    set STF_VITAL        = ""
  770.    set STF_OVERWRITE    = "VERIFYSOURCEOLDER"
  771.    AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  772.    exit
  773. [Source Media Descriptions]
  774.     1 = "Windows NT Server CD-ROM", TAGFILE = cdrom_s.40
  775. [Signature]
  776.     FileType = MICROSOFT_FILE
  777. [GetSignature]
  778.     read-syms Signature
  779.     return $(FileType)
  780. [ProductType]
  781. STF_PRODUCT  = LanmanNT
  782. STF_PLATFORM = I386
  783. [Files-Inf]
  784. 2,    oemsetup.inf,     SIZE=1000,    RENAME=$(!UG_Filename)
  785. [Files-DEC100]
  786. 1,LANCE.SYS , SIZE=999
  787. [Files-DEC101]
  788. 1,LANCE.SYS , SIZE=999
  789. [LanguagesSupported]
  790.     ENG
  791. [OptionsTextENG]
  792.     DEC100     = "DEC EtherWORKS LC Adapter"
  793.     DEC101     = "DEC EtherWORKS Turbo/LC Adapter"
  794. [FileConstantsENG]
  795. ProCaption   = "Windows NT Setup"
  796. ProCancel    = "Cancel"
  797. ProCancelMsg = "Windows NT Networking is not correctly installed.  "+
  798.                "Are you sure you want to cancel copying files?"
  799. ProCancelCap = "Network Setup Message"
  800. ProText1     = "Copying:"
  801. ProText2     = "To:"
  802. FunctionTitleDEC100   = "DEC EtherWORKS LC Adapter Card Setup"
  803. FunctionTitleDEC101   = "DEC EtherWORKS Turbo/LC Adapter Card Setup"
  804. ProductSoftwareDescription      = "DEC Lance Adapter Driver"
  805. ProductHardwareDEC100Description        = "DEC EtherWORKS LC Adapter"
  806. ProductHardwareDEC101Description        = "DEC EtherWORKS Turbo/LC Adapter"
  807. ProductSoftwareTitle    = "DEC Lance Adapter Driver"
  808. ProductHardwareDEC100Title      = "DEC EtherWORKS LC Adapter"
  809. ProductHardwareDEC101Title      = "DEC EtherWORKS Turbo/LC Adapter"
  810. ShellCodeErrorTitle     = "Error: "$(FunctionTitle$(Option))
  811. ShellCodeErrorText      = "Shell Code Error."
  812. [DialogConstantsENG]
  813. Help        = "&Help"
  814. Exit        = "Cancel"
  815. OK          = "OK"
  816. HelpContext = ""
  817. Continue    = "Continue"
  818. Cancel      = "Cancel"
  819. [FileDependentDlgENG]
  820. Label1 = "&IRQ Level:"
  821. Label2 = "&Memory Base Address:"
  822. Group1 = "I/O Port Base Address"
  823. Radio1 = "&Primary"
  824. Radio2 = "&Secondary"
  825. DlgType = "RadioCombination"
  826. DlgTemplate = "DEC_SETUP"
  827. Caption = $(FunctionTitle$(Option))
  828. CBOptionGreyed = {}
  829. RadioOptionGreyed = {}
  830. RadioIn = {$(IOBaseChoice)}
  831. Combo1List = $(IRQ_List)
  832. Combo1Out  = $(IRQLevel)
  833. Combo2List = $(MemBaseAddrHexList)
  834. Combo2Out  = $(MemBaseAddrHex)
  835. ComboListItemsIn  = {Combo1List, Combo2List}
  836. ComboListItemsOut = {Combo1Out, Combo2Out}
  837. EditTextIn = ""
  838. EditTextLim = ""
  839. NotifyFields = {NO, NO}
  840. HelpContext = $(!IDH_DB_OEMNADD1_INS)
  841.